package com.qingcloud.api.dcengine.service.fallback;

import com.qingcloud.api.dcengine.dto.TablePageDTO;
import com.qingcloud.api.dcengine.dto.aggregation.DomainAvgPollutionData;
import com.qingcloud.api.dcengine.dto.aggregation.DomainAvgValidDay;
import com.qingcloud.api.dcengine.dto.aggregation.SimpleAvgPollutionData;
import com.qingcloud.api.dcengine.dto.sdata.CommonStationData;
import com.qingcloud.api.dcengine.dto.sdata.StationOverLimitData;
import com.qingcloud.api.dcengine.dto.sdata.StationValidCount;
import com.qingcloud.api.dcengine.dto.sdata.StationValidData;
import com.qingcloud.api.dcengine.model.sdata.*;
import com.qingcloud.api.dcengine.service.StationDataApi;
import org.springframework.stereotype.Component;

import java.util.Collections;
import java.util.List;

/**
 * 监测点数据熔断保护实现
 */
@Component
public class StationDataApiFallback implements StationDataApi {

    /**
     * 分钟数据通用列表接口
     */
    @Override
    public List<CommonStationData> minuteList(StationDataListParam listParam) {
        return Collections.emptyList();
    }

    /**
     * 分钟数据通用分页查询接口
     */
    @Override
    public TablePageDTO<CommonStationData> minutePage(StationDataPageParam pageParam) {
        return new TablePageDTO<>();
    }

    /**
     * 5分钟数据通用列表接口
     */
    @Override
    public List<CommonStationData> fiveList(StationDataListParam listParam) {
        return Collections.emptyList();
    }

    /**
     * 5分钟数据通用分页查询接口
     */
    @Override
    public TablePageDTO<CommonStationData> fivePage(StationDataPageParam pageParam) {
        return new TablePageDTO<>();
    }

    /**
     * 10分钟数据通用列表接口
     */
    @Override
    public List<CommonStationData> tenList(StationDataListParam listParam) {
        return Collections.emptyList();
    }

    /**
     * 10分钟数据通用分页查询接口
     */
    @Override
    public TablePageDTO<CommonStationData> tenPage(StationDataPageParam pageParam) {
        return new TablePageDTO<>();
    }

    /**
     * 监测点小时数据通用列表接口
     */
    @Override
    public List<CommonStationData> hourList(StationDataListParam listParam) {
        return Collections.emptyList();
    }

    /**
     * 小时数据通用分页查询接口
     */
    @Override
    public TablePageDTO<CommonStationData> hourPage(StationDataPageParam pageParam) {
        return new TablePageDTO<>();
    }

    /**
     * 统计数据质控小时数据数量
     */
    @Override
    public int countValidHour(StationValidListParam listParam) {
        return 0;
    }

    /**
     * 数据质控小时数据列表查询
     */
    @Override
    public List<StationValidData> validHourList(StationValidListParam listParam) {
        return Collections.emptyList();
    }

    /**
     * 数据质控小时数据分页查询接口
     */
    @Override
    public TablePageDTO<StationValidData> validHourPage(StationValidPageParam pageParam) {
        return new TablePageDTO<>();
    }

    /**
     * 天数据通用列表接口
     */
    @Override
    public List<CommonStationData> dayList(StationDataListParam listParam) {
        return Collections.emptyList();
    }

    /**
     * 天数据通用分页查询接口
     */
    @Override
    public TablePageDTO<CommonStationData> dayPage(StationDataPageParam pageParam) {
        return new TablePageDTO<>();
    }

    /**
     * 统计数据质控天数据数量
     */
    @Override
    public int countValidDay(StationValidListParam listParam) {
        return 0;
    }

    /**
     * 数据质控天数据列表查询
     */
    @Override
    public List<StationValidData> validDayList(StationValidListParam listParam) {
        return Collections.emptyList();
    }

    /**
     * 数据质控天数据分页查询接口
     */
    @Override
    public TablePageDTO<StationValidData> validDayPage(StationValidPageParam pageParam) {
        return new TablePageDTO<>();
    }

    /**
     * 更新小时数据某个污染物的有效性
     */
    @Override
    public int updateHourValid(List<UpdateStationValidParam> validParamList) {
        return validParamList.size();
    }

    /**
     * 更新天数据某个污染物的有效性
     */
    @Override
    public int updateDayValid(List<UpdateStationValidParam> validParamList) {
        return validParamList.size();
    }

    /**
     * 月数据通用列表接口
     */
    @Override
    public List<CommonStationData> monthList(StationDataListParam listParam) {
        return Collections.emptyList();
    }

    /**
     * 月数据通用分页查询接口
     */
    @Override
    public TablePageDTO<CommonStationData> monthPage(StationDataPageParam pageParam) {
        return new TablePageDTO<>();
    }

    @Override
    public List<SimpleAvgPollutionData> hourAvgByTime(StationDataListParam listParam) {
        return Collections.emptyList();
    }

    /**
     * 天数据按时间聚合平均接口
     */
    @Override
    public List<SimpleAvgPollutionData> dayAvgByTime(StationDataListParam listParam) {
        return Collections.emptyList();
    }

    @Override
    public List<CommonStationData> findStationAvgDayData(StationDataListParam stationDataListParam) {
        return Collections.emptyList();
    }

    @Override
    public CommonStationData findStationAvgData(StationDataListParam stationDataListParam) {
        return new CommonStationData();
    }

    @Override
    public CommonStationData findStationYearData(StationDataListParam stationDataListParam) {
        return new CommonStationData();
    }

    /**
     * 站点每天数据按区县平均列表数据
     */
    @Override
    public List<DomainAvgPollutionData> dayAvgByDistrictList(StationDataListParam listParam) {
        return Collections.emptyList();
    }

    /**
     * 站点每天数据按区县平均分页数据
     */
    @Override
    public TablePageDTO<DomainAvgPollutionData> dayAvgByDistrictPage(StationDataPageParam pageParam) {
        return new TablePageDTO<>();
    }

    /**
     * 站点小时数据按污染物最大值站点编号排序
     */
    @Override
    public TablePageDTO<String> hourMaxValueOrderStation(StationMaxValueOrderPageParam pageParam) {
        return new TablePageDTO<>();
    }

    /**
     * 站点每天数据按区县平均的有效天数列表
     */
    @Override
    public List<DomainAvgValidDay> dayAvgByDistrictValidDayList(StationDataListParam listParam) {
        return Collections.emptyList();
    }

    /**
     * 站点每天数据按区县平均的有效天数分页数据
     */
    @Override
    public TablePageDTO<DomainAvgValidDay> dayAvgByDistrictValidDayPage(StationDataPageParam pageParam) {
        return new TablePageDTO<>();
    }

    @Override
    public TablePageDTO<StationOverLimitData> hourOverLimitPage(StationOverLimitPageParam pageParam) {
        return new TablePageDTO<>();
    }

    @Override
    public Integer sumHourOverLimit(StationOverLimitParam param) {
        return 0;
    }

    @Override
    public List<SimpleAvgPollutionData> hourWeightAvgByTime(StationDataListParam listParam) {
        return Collections.emptyList();
    }

    @Override
    public List<SimpleAvgPollutionData> dayWeightAvgByTime(StationDataListParam listParam) {
        return Collections.emptyList();
    }

    @Override
    public List<StationValidCount> hourValidCount(StationDataListParam listParam) {
        return Collections.emptyList();
    }

    @Override
    public List<StationValidCount> dayValidCount(StationDataListParam listParam) {
        return Collections.emptyList();
    }

}
